1. Field of the Invention
The present invention relates to software distribution, and more particularly, to a method, system and computer program product for delivering software and providing a feedback in a virtual execution environment.
2. Background Art
Complex software systems and modules need to be installed and tested in a real working environment. Typically, a beta version of a software product is installed on a client system for testing. During software product beta testing, it is important to collect and analyze customers' feedback. Based on the customers' feedback, the bugs can be detected and fixed. An overall quality of the software product can be improved based on the customers' experience. In particular, issues such as stability, usability, scalability, etc., can be addressed.
The industry trend of virtualization and isolation of computer system resources presents some additional challenges in terms of beta testing. A Virtual Machine (VM) is a type of an isolated Virtual Environment where multiple VMs can run on the same physical machine simultaneously. Each VM instance has a set of its own software components (including OS) and uses hardware modules of the physical machine where the VM resides.
Often, there are multiple VMs running on a host operating system. In such system, some resources of the host operating system are isolated and allocated for running each of the VMs. With Virtual Machine (VM) technology, a user can create and run multiple virtual environments on a server at the same time. Each virtual environment, such as a VM, requires its own Guest Operating System (GOS) and can run applications independently.
However, there are certain software defects of the applications or the GOSs that are difficult to detect, identify and report. There are also a number of defect types that are difficult to detect, identify and report. For example:                OS kernel “hangs;”        OS crashes without generation of a crash dump;        system service “hangs”; and        situations when an error report cannot be generated and sent.        
The above situations can lead to important data being missed. This data is needed for analyzing and fixing the defects of the application being tested.
Accordingly, there is a need in the art for a method and system for comprehensive testing of software products in a virtual execution environment that provide detection of advanced system errors and generation of error reports.